﻿using System.Collections.Generic;
using System.Windows;
using System.Windows.Input;
using CalculoPreciosUnitarios.Logica.GestorObject.Rubro;

namespace CalculoPreciosUnitarios.Ventanas.Rubro
{
    /// <summary>
    /// Lógica de interacción para RubrosEncontrados.xaml
    /// </summary>
    public partial class RubrosEncontrados : Window
    {
        #region Property

        List<RubroCS> _rubros = new List<RubroCS>();

        public delegate void EnviarRubro(RubroCS sender);

        public EnviarRubro enviarRubro;

        private bool buscandoRubro = false;

        #endregion

        #region Contructor

        public RubrosEncontrados()
        {
            InitializeComponent();
            buscandoRubro = false;
        }

        public RubrosEncontrados(List<RubroCS> rubros)
        {
            InitializeComponent();
            buscandoRubro = true;
            _rubros = rubros;
            dataGridRubrosEncontrados.DataContext = _rubros;
        }

        #endregion

        #region Windows Methods

        private void Window_Loaded(object sender, RoutedEventArgs e)
        {
            dataGridRubrosEncontrados.ItemsSource = _rubros;
            dataGridRubrosEncontrados.Items.Refresh();
        }

        private void dataGridRubrosEncontrados_MouseDoubleClick(object sender, MouseButtonEventArgs e)
        {
            Salir();
        }

        private void Window_KeyDown(object sender, KeyEventArgs e)
        {
            switch (e.Key)
            {
                case Key.Escape:
                    Salir();
                    break;
                default:
                    return;
            }
        }

        #endregion

        #region Auxiliar Methods

        private void Salir()
        {
            if ((dataGridRubrosEncontrados.SelectedIndex >= 0) && (dataGridRubrosEncontrados.Items.Count >= 0) && buscandoRubro)
                enviarRubro(_rubros[dataGridRubrosEncontrados.SelectedIndex]);
            this.Close();
        }

        #endregion
    }
}
